%{
#include <stdlib.h>
#include "eval-upmc.h"
#include "y.tab.h"

  extern int yyerror (const char *);
%}

blancs    [ \t]*

entier    [-]?[0-9]*

reel      [-]?[0-9]+\.[0-9]+

%%

[{}$]             {return *yytext;}
 
{reel}                  { yylval.dbl = atof(yytext);
                          return REEL;}

{entier}                { yylval.number = atoi(yytext);
                          return ENTIER;}

{blancs}                {/* ignore les blancs */}


"+"   return(PLUS);
"-"   return(MOINS);

"*"   return(FOIS);
"/"   return(DIVISE);

"("   return(PARENTHESE_GAUCHE);
")"   return(PARENTHESE_DROITE);

.               yyerror("Unknown character");

%%

int yywrap(void) {
    return 1;
}
